package com.dhcc.sds.busi.service;

import com.alibaba.fastjson.JSONObject;
import com.dhcc.cdc.busi.entity.CdcEpisodeEntity;
import com.dhcc.core.framework.base.service.IBaseService;
import com.dhcc.sdc.busi.entity.SdcBusiQcTriggeredEntity;
import com.dhcc.sdc.busi.entity.SdcQcEntity;
import com.dhcc.sds.busi.entity.SdsQcincaseDataEntity;
import com.dhcc.sds.busi.vo.AnalysisSdsPortalVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 表单常用门户相关信息获取服务层接口
 *
 * @author zhangdc
 * @ClassName: ISdsQcincaseDataService
 * @Description: TODO
 * @date 2022-06-01 10:09:15
 */
public interface ISdsQcincaseDataService extends IBaseService<SdsQcincaseDataEntity> {

    void updatePortalData(Long mrId);

    int selectRepCount(Map<String, Object> params);

    AnalysisSdsPortalVo selectCostAndDayByDimData(Long dimDataId);

    List<AnalysisSdsPortalVo> selectQCUpLoadData(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectLocUpLoadData(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectDocUpLoadData(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectARatio(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectUseTime(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectMrlistDataDetails(String idName, List<String> deptIds);

    List<SdsQcincaseDataEntity> selectByUploadDateAndUserLinkDepts(String uploadDate, Map<String, Object> params);

    List<CdcEpisodeEntity> selectQCDept(Map<String, Object> params);

    List<SdcBusiQcTriggeredEntity> selectQCCategory(Map<String, Object> params);

    List<SdcBusiQcTriggeredEntity> selectQCCategoryByCondition(Map<String, Object> params);

    /**
     * @Description: 查询质控触发人次
     */
    int selectTriggerCountByDate(String startDate, String endDate, Map<String, Object> params);

    List<CdcEpisodeEntity> selectPatientDetail(Long id);

    List<SdcQcEntity> selectQcDetail(Long id);

    List<SdsQcincaseDataEntity> selectDaysByEntityId(Long entityId);

    AnalysisSdsPortalVo selectARatioByTime(Long entityId, Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectUseTimeByTime(Long entityId, Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectdevlist(Map<String, Object> params);
}
